The present invention relates to mark-up language documents, and more particularly to techniques for invoking system commands from within a mark-up language document.
Mark-up languages have become exceedingly popular tools for authoring electronic content. Mark-up languages used today include, for example, Standard Generalized Markup Language (SGML), HyperText Markup Language (HTML), eXtensible Markup Language (XML), eXtensible HyperText Markup Language (XHTML), and Synchronized Multimedia Integration Language (SMIL). These languages allow the developer to xe2x80x9cmark-upxe2x80x9d a document. For example, tags may be inserted within the document to specify how the document, or a portion of the document, should be formatted or displayed. As another example, links may be used to define relationships between the document and other documents and to allow a user to jump from one document to another. Links may also be used to perform various functions including, for example, to create tool bars, to link to a cascading style sheet (rev=stylesheet), a script (rev=script), or a printable version (like a .pdf) of the document (rev=print), and to embed authorship details. Links may also perform a variety of functions, including executing a string of commands such as JavaScript commands.
When viewed through an application program, such as a web browser or a reading device (discussed herein), links are commonly depicted as underlined text having a blue or red color. In the mark-up language document itself, the link is designated by a link attribute and corresponding language to indicate the resource to which it refers. The link attributes generally include, for example, the following: href (URL for linked resource); id (SGML ID attribute); rel (forward link types); rev (reverse link types); and title (advisory title string). Examples of links within a mark-up language document include:
1) less than A HREF=xe2x80x9chttp://msn.comxe2x80x9d greater than 
2) less than A HREF=xe2x80x9cftp://msn.comxe2x80x9d greater than 
3) less than A HREF=xe2x80x9cjavascript://msn.comxe2x80x9d greater than 
4) less than A HREF=xe2x80x9cmailto:jdoe@webreference.comxe2x80x9d greater than 
The first link refers to a HyperText Transfer Protocol (HTTP) and provides a Uniform Resource Locator (URL) to which the system should jump. The second link refers to a File Transfer Protocol (FTP) and provides a file the system should retrieve. The third link provides JavaScript that the system should run. The fourth link provides an e-mail address to which the system should send an e-mail message.
Because of their versatility, mark-up languages are now used in a number of applications. One such application is for authoring web-page content. Another such application that is rapidly gaining recognition is for so-called xe2x80x9celectronic booksxe2x80x9d or xe2x80x9ce-books.xe2x80x9d E-books are electronic publications (such as books, journals, magazines, etc.) that can be viewed using computer-based display devices. Application programs running on these reading devices display the e-book content. Examples of such reading devices include the xe2x80x9cROCKET EBOOKxe2x80x9d by NuvoMedia, Inc. and the xe2x80x9cSOFTBOOK READERxe2x80x9d by Softbook Press, Inc. Alternatively, these devices may be traditional computing devices such as personal computers.
E-books are provided in a mark-up language format. As a result, e-book pages may be formatted and linked using the commands available in the mark-up language. For example, e-books may be formatted in a general format in accordance with an Open eBook standard. This standard is set forth in Open eBook Publication Structure 1.0, which can be found at www.openebook.org and Open eBook Forum, 302 A West 12th Street, #304. New York, N.Y. 10014. This publication is incorporated herein by reference in its entirety.
One aspect of e-books is that it may be desirable to perform various system commands while viewing an e-book. Consider, for example, a user viewing an e-book from a personal computing environment. The user may wish to adjust the font settings. Present systems are limiting in that the user must take several steps to invoke system commands and operations. To adjust font settings, the user must exit the window for the e-book viewing program, call up the specific commands from the operating system to adjust the font, and then return to the e-book. This may be particularly disruptive where the user is in the middle of reading an e-book. It is therefore desirable to have a system where system commands may be more conveniently accessed and performed without interrupting the user""s activity.
Certain techniques can be used to perform functions within a mark-up language document. In particular, JavaScript may be directly embedded with a tag within the mark-up language document. The tag may designate the JavaScript such that when a user selects the corresponding link, the JavaScript is executed. However, this technique is limiting in that the JavaScript may only perform limited operations and, more significantly, cannot execute system commands outside of the application program reading the JavaScript. Further, the entire JavaScript command set must be included within the mark-up language document. The negative consequence is that is possibly undesirable and even malicious functions may be unknowingly executed. Further, the JavaScript-based approach is limiting in that it may unnecessarily increase the size of the document, especially in documents having a large number of JavaScript links. Many e-book documents already are rather large due to the significant amount of text and graphic content. It is therefore desirable to have a system where pre-defined system commands may be easily identified and executed without requiring increased memory for the document.
The present invention solves many of the aforementioned problems by providing a method of invoking pre-defined system commands directly from a mark-up language document. Links referencing a pre-defined system command to be invoked may be embedded within the document. The specific system command may be identified in the link by an alias, such as, for example, a numeric code. When a user selects the link, the system will analyze the contents of the link. If the link includes an instruction to invoke a system command, the system will extract the corresponding alias, refer to a look-up table to identify the appropriate system command to which the alias refers, and execute the identified system command. The look-up table correlates each alias with a pre-defined system command.
By using the invoking techniques of the present invention, system commands may be invoked directly from within a mark-up language document. Further, since only those system commands identified in the look-up table can be performed, undesirable or harmful system commands are precluded from being invoked. Even further, desired functionality may be provided in mark-up language documents without the need to enter script in the document itself. Even further, system commands may be subsequently added, altered, disabled, or removed from the look-up table and the change can thereby be applied to all pre-existing documents. These as well as other novel advantages, details, embodiments, features and objects of the present invention will be apparent to those skilled in the art from following the detailed description of the invention, the attached claims and accompanying drawings, listed herein, which are useful in explaining the invention.